週末補前面幾篇
沒意外的話這篇會把API系列結束
不過大家先載個測試用好朋友
Postman
它本來只是個Google Chrome的擴充 不過最近幾個月它獨立出來了
應該是為了不想被限制住一些功能吧 還有我之前稍微研究過 Google Chrome擴充好像還需要上架費 一次性5鎂吧 之後就可以丟好多個擴充了 不過也算是佛心來的 一堆人都會放免費的擴充 雖然5鎂不貴啦
接下來我們就來寫Controller的部分 我決定一次寫完一次全貼了 大家的水準都不知道是我的幾倍厲害
反正 就只是回傳成json 因為json算是用得比較廣泛的吧
url api/crud
就是index
長得像這樣 然後其他部分都差不多了
code在這裡
<?php
namespace App\Http\Controllers\Api;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Repositories\CRUDRepository;
class CRUDController extends Controller
{
protected $CRUDRepo;
public function __construct(CRUDRepository $CRUDRepo)
{
$this->CRUDRepo = $CRUDRepo;
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$posts = $this->CRUDRepo->index();
return response()->json(['status' => 'success', 'posts' => $posts]);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$data = $request->only('title', 'content');
$post = $this->CRUDRepo->create($data);
return response()->json(['status' => 'success']);
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$post = $this->CRUDRepo->find($id);
return response()->json(['status' => 'success', 'post' => $post]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$data = $request->only('title', 'content');
$post = $this->CRUDRepo->update($id, $data);
if ($post) {
return response()->json(['status' => 'success']);
}
return response()->json(['status' => 'error', 'message' => 'Post Not Found'], 404);
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$result = $this->CRUDRepo->delete($id);
if ($result) {
return response()->json(['status' => 'success']);
}
return response()->json(['status' => 'error', 'message' => 'Post Not Found'], 404);
}
}
在update跟destroy的部分我有稍微動了些手腳
讓它回傳404的錯誤 status code就是這樣帶的
不過非GET與POST都要這樣子帶 是一個比較麻煩的地方就是了
Postman的部分我已經沒有什麼力氣講了...
https://ithelp.ithome.com.tw/articles/10195738
所以我就貼個別人的文吧...